#include<iostream>
#include "KNNGraph.hpp"
#include "vecs_io.hpp"

using namespace std;
using namespace MultipleHNSW;

int main() {

    const char *dataset_name = "siftsmall";

    const int ef_search_config[3] = {10, 5, 50}; //start, stride, iter

    const int k_graph = 10;
    int n_query, top_k, n_base, data_dim;
    top_k = 10;

    vector<float *> data = read_data(dataset_name, n_query, top_k, n_base, data_dim);
    float *base = data[0];
    float *query = data[1];
    int *gnd = (int *) data[2];

    KNNGraph graph(data_dim, n_base, top_k);
    graph.build(base);
    graph.test();

    return 0;
}

